package bancosys.tec.persist;

/**
 * Armazena o usuário autenticado.
 * 
 * @author Marco
 */
public final class AuthorizedUser {

    /**
     * Armazena o usuário autenticado na thread atual.
     */
    private static final ThreadLocal<String> THREAD_LOCAL_USER = new ThreadLocal<String>();

    /**
     * Construtor.
     */
    private AuthorizedUser() {
        // vazio
    }

    /**
     * Define o usuário autenticado.
     * 
     * @param user usuário autenticado.
     */
    public static void set(String user) {
        THREAD_LOCAL_USER.set(user);
    }

    /**
     * Retorna o usuário autenticado.
     * 
     * @return usuário autenticado, ou <code>null</code> caso não possua nenhum
     */
    public static String get() {
        return THREAD_LOCAL_USER.get();
    }

    /**
     * Limpa o usuário autenticado.
     */
    public static void clear() {
        THREAD_LOCAL_USER.set(null);
    }
}
